#ifdef __arm__
#ifndef __aarch64__
    .text
    .align 5
    .global TestPush
#ifndef __APPLE__
    .type TestPush, %function
#endif

// void TestPush(int a, int b, int c, int d, int e);
TestPush:
    push {r0-r8, r10, r11, lr}
    add sp, sp, #48

    // r0-r3 is free to use now
    ldr r0, [sp, #-48] // a
    ldr r1, [sp, #-44] // b
    ldr r2, [sp, #-40] // c
    ldr r3, [sp, #-36] // d
    ldr r4, [sp] // e

    // modify r0
    ldr lr, [sp, #-48]
    add lr, lr, #0
    str lr, [sp, #-48]

    sub sp, sp, #48
    pop {r0-r8, r10, r11, pc}
#endif
#endif
